// <------------ 请求参数

// 请求参数
export interface RecommendationParams extends SearchParams {
    /**
     * 当前页
     */
    current?: number;

    /**
     * 每页显示数量
     */
    size?: number;
}
// 搜索
export interface SearchParams {
    /**
     * 物料编码
     */
    materialCode?: string;
    /**
     * 物料名称
     */
    materialName?: string;

    orderDeliveryTime?: string;

    orderDeliveryTimeLeft?: string;

    orderDeliveryTimeRight?: string;
    /**
     * 订单号
     */
    orderNumber?: string;
    /**
     * 计划完成时间 yyyy-MM-dd
     */
    planCompletionTime?: string;
    /**
     * 计划开始时间 yyyy-MM-dd
     */
    planStartTime?: string;
    /**
     * 车间名称
     */
    workshopName?: string;
}
// ------------>

//  <------------ 返回参数

/**
 * PageSuggestedPlan
 */
export interface RecommendationResponse {
    countId?: string;
    current: number;
    maxLimit?: number;
    optimizeCountSql?: boolean;
    optimizeJoinOfCountSql?: boolean;
    orders: OrderItem[];
    pages?: number;
    records: SuggestedPlan[];
    searchCount?: boolean;
    size: number;
    total: number;
}

/**
 * OrderItem
 */
export interface OrderItem {
    asc?: boolean;
    column?: string;
}

/**
 * SuggestedPlan
 */
export interface SuggestedPlan {
    /**
     * 创建时间
     */
    createTime?: Date;
    /**
     * 创建人
     */
    creator?: string;
    /**
     * 需求时间
     */
    demandTime?: Date;
    /**
     * 主键id
     */
    id: number;
    /**
     * 即时库存
     */
    immediateInventory?: number;
    level?: number;
    /**
     * 制造策略
     */
    manufacturingStrategy?: string;
    /**
     * 物料编码
     */
    materialCode?: string;
    /**
     * 物料名称
     */
    materialName?: string;
    materialParentCode?: string;
    /**
     * 订单交期
     */
    orderDeliveryTime?: Date;
    /**
     * 订单号
     */
    orderNumber?: string;
    /**
     * 订单数量
     */
    orderQuantity?: number;
    /**
     * 计划完成时间
     */
    planCompletionTime?: Date;
    /**
     * 计划数量
     */
    plannedQuantity?: number;
    /**
     * 计划开始时间
     */
    planStartTime?: Date;
    /**
     * 占有库存
     */
    possessionInventory?: number;
    /**
     * 生产类型
     */
    productionType?: string;
    /**
     * 排产状态
     */
    schedulingStatus?: number;
    /**
     * 车间主键id
     */
    workshopId?: string;
    /**
     * 车间名称
     */
    workshopName?: string;
}
